home *** CD-ROM | disk | FTP | other *** search
/ Aminet 19 / Aminet 19 (1997)(GTI - Schatztruhe)[!][Jun 1997].iso / Aminet / comm / cnet / gu40pack.lha / gu40pack / GU40_Intro < prev    next >
Text File  |  1997-03-21  |  15KB  |  291 lines

  1. ============================================================================
  2.           The Complete GETUSER List for CNet Amiga, v3.05c & v4.26+!
  3.  
  4.                  Written & Compiled by Dotoran of Frontiers!
  5.  
  6.            $VER: CNet GetUser List, v4.02 (19-Mar-97) by Dotoran!
  7. ============================================================================
  8.  
  9.     Welcome to the newest installment of the GETUSER List Package for CNet
  10. Amiga! This time, for CNet Amiga, v4.26+!
  11.  
  12.     Being as Peter Klein, aka PMK, has officially left the Amiga scene, it
  13. has taken me awhile to reestablish the will and want to continue with the
  14. updating of this list. I'd like to thank Peter for all his help in the past.
  15. He will be VERY SORELEY missed by us all in the CNet Amiga community!
  16.  
  17.     I would also like to thank the NEW owners and developers of CNet Amiga,
  18. without whom I wouldn't have a program to create such a list FOR! Thanks to
  19. Todd H. Knight and Ray Akey!
  20.  
  21.     I'd also like to publically acknowledge the following individuals which
  22. have helped in the testing, locating, and explaining of some of the NEW values
  23. listed in this version: Ray Akey, Kelly Cochran (aka Trolan), Dave Cook (aka
  24. Dave_C), and Pieter Hollants (aka Fate_1oo%). There are most probably others,
  25. but their names escape me right now. Thanks again guys!
  26.  
  27.     Alright, with the acknowledgements out of the way, let's take a look at
  28. what you should have received in this Archive. There are four major TEXT
  29. files which should have been included:
  30.  
  31.     GU40_Intro ------> The file you are presently reading! :-)
  32.  
  33.     GU40_Shorts -----> Lists the 102 Short, Decimal GetUser Values, as well
  34.                        as a discussion on the proper usage of LOADSCRATCH!
  35.  
  36.     GU40_Longs ------> Lists ALL Known 7-Digit GetUser Values, for MANY of
  37.                        the internal structures used in CNet Amiga!
  38.  
  39.     GU40_PrivINFO ---> A text file explaining exactly how to work with the
  40.                        CNet Amiga Priviledge Flags, including examples!
  41.  
  42.     GU40_Coders -----> This document includes the "heavy" discussion on how
  43.                        to glean data from structures that do NOT have easy
  44.                        GetUser defines for them.
  45.  
  46.     OFFSET_Scanner --> ARexx Program that lets you peak "behind the scenes"
  47.                        of your CNet Amiga, and search out any possible NEW
  48.                        GetUser Values!
  49.  
  50.     GetUserChecker --> This program allows you to check the VALIDITY of any
  51.                        of the SHORT GetUser values. It shows you which values
  52.                        work with GetUser and which work with GetScratch. Some
  53.                        of the values DON'T do what they SAY they do, so this
  54.                        file is a great help in FINDING these oddities!
  55.  
  56.     GetUserReader ---> This program gives you a command that allows you to
  57.                        view the contents of ANY GetUser value from ANYWHERE
  58.                        (and ANY PROMPT) within your System. You also have
  59.                        the ability of specifying HOW you wish to view the
  60.                        contents: Decimal, Hexadecimal, Binary, or CHAR!
  61.  
  62.       GetUserSearch -> An OnLine CNet GetUser Database. Type a search term,
  63.                        then let this program FIND and DISPLAY ONLY those
  64.                        GetUser values that CONTAIN this search text. With
  65.                        multiple command settings, this file will find a use
  66.                        on almost ALL "inspired" CNet BBS's!
  67.  
  68.     The "short" GetUser values are probably the EASIEST GetUser Values to
  69. use, and are fully explained at the end of the "GU40_Shorts" file, so will
  70. NOT be discussed here. This will save us a FEW lines in this file! :-)
  71.  
  72.     The first GetUser List I ever published for CNet Amiga was for the v2.61
  73. of CNet. This was the first STABLE listing to be published since the v2.42e
  74. version, so at the time it was REALLY needed. When I started that list, one
  75. of my LARGEST sources was a GetUser listing put out by Shawn McNeece that
  76. had over 800 codes on it. This earlier listing contained something that MY
  77. initial efforts did NOT, and that was the inclusion of many of the OTHER
  78. CNet C structures, besides the MainPort, UserData, and PortData structures.
  79.  
  80.     You can grab virtually ANY piece of data from the CNet strutures, 
  81. PROVIDED we know two things:
  82.  
  83.     1: Where to LOOK within CNet.
  84.     2: How to EXTRACT the data.
  85.  
  86.     With copies of the "#?.h" header files readily avilble, I was able to 
  87. accomplish the first step, while the second step took a bit more time. In 
  88. previous lists, all one needed to do was issue a GETUSER command to receive
  89. a piece of data that was useable immediately. This was NOT the case, however,
  90. with a lot of the NEW Values we came across, like the Priviledges, Pointers,
  91. Arguments, etc.
  92.  
  93.     To fully accomplish this second step, I had to experiment with different
  94. formulas, commands, or a combination of both in order to get data that had
  95. some form of MEANING. In other words, what I have done is to GIVE YOU these
  96. formulas, etc. so that YOU can then simply apply the needed values to get
  97. the data in USABLE form. You'll find these formulas within the listings, or
  98. included in one or more of the included TEXT files, so please take the time
  99. to at least SCAN the material in these files. By doing this, you will then
  100. have an "inkling" if you recalled seeing a piece of info you could use. You
  101. can then go back and search the files to find the EXACT information.
  102.  
  103.     Here's a breakdown of what I've learned thus far about the 7-Digit
  104. GetUsers(also called "long" or "5-digit" GetUsers):
  105.  
  106.   ABCCCCC
  107.   ||~~|~~
  108.   ||  `----> Five-Digit OffSet from START of "C" Structure.
  109.   ||
  110.   |`-------> Variable Type(1=Char,2=Short,3=Char,4=Long,5=Date,6=Pointer)
  111.   |
  112.   `--------> 1=PortData (including UserData), 2=MainPort Structure,
  113.              3=PortDataExtension block, or 4=MainPortExtension block.
  114.  
  115.     The "A" value determines from which Structure we'll be getting the data
  116. from. Normally, if the data pertains to an individual user, this number will
  117. be a "1" (or "3"), while if it pertains to the bbs, it'll be a "2" (or "4").
  118.  
  119.     The "B" value determines what KIND of variable we're dealing with, and
  120. will ALWAYS be one of the following:
  121.  
  122.     1 : Byte     (A Number or Char. Ranging from 0 to 255)   (8 Bit, 1 Byte)
  123.  
  124.     2 : Short    (A Number Ranging from 0 to 256^2)        (16 Bit, 2 Bytes)
  125.  
  126.     3 : Char     (Text, like a UserName, etc.)        (No PreDefined Length)
  127.  
  128.     4 : Long     (A Number Ranging from 0 to 256^4)        (32 Bit, 4 Bytes)
  129.  
  130.     5 : Date     (In Expanded Format)                              (6 Bytes)
  131.  
  132.     6 : Pointer  (Can Return ANY of the Above Codes)               (4 Bytes)
  133.  
  134.     The "C" value determines how far from the START of a particular structure
  135. this piece of data can be found. What makes locating these values tough is
  136. that some of the structures are nested within other structures. This means
  137. that not only do you need to find the offset, or start position, within the
  138. structure you're interested in, but you must also be aware of the offset of
  139. the structure itself, within the parent structure. If this sounds confusing, 
  140. believe me, you're NOT alone! hehe ;-)
  141.  
  142. ============================================================================
  143.  
  144.     To finish this Introduction, let's take a look at each TYPE of GetUser
  145. value, in terms of additional information you might find helpful. Each type
  146. is generally associated with one or more "keywords", which you will see all
  147. throughout the different header files. This info may help you in determining 
  148. what Type of variable you want to use:
  149.  
  150. x1xxxxx's   (Header keywords: BYTE, UBYTE, CHAR)
  151.  
  152.     - A Number or Character Value between 0 and 255.
  153.     - Value is an 8-bit number, taking up 1 byte of space.
  154.  
  155. ----------------------------------------------------------------------------
  156.  
  157. x2xxxxx's   (Header keywords: SHORT, USHORT)
  158.  
  159.     - A Numeric Value between 0 and 65,536.
  160.     - Value is a 16-bit number, taking up 2 bytes of space.
  161.  
  162. ----------------------------------------------------------------------------
  163.  
  164. x3xxxxx's   (Header keywords: CHAR, STRING)
  165.  
  166.     - A text string with a variable length.
  167.     - In most cases, the variable's length is given in the Header file.
  168.     - On the GetUser Listing, the Length is given in []'s AFTER the Value.
  169.  
  170. ----------------------------------------------------------------------------
  171.  
  172. x4xxxxx's   (Header keywords: LONG, ULONG)
  173.  
  174.     - A Numeric Value between 0 and 4,294,967,295.
  175.     - Value is a 32-bit number, taking up 4 bytes of space.
  176.     - Use "NUMERIC DIGITS 10" before any computations you plan on performing
  177.       on a 32-bit number, unless you plan to SPLIT the number, as shown next.
  178.     - By changing the "4" into a "2", these values can be alternately read
  179.       as two 16-bit numbers. Increase Second Value by 2, as shown below:
  180.  
  181.                         1400472 <--oo--> Increase Additional Value by 2.
  182.       Change 4 Into 2 <--|         ||
  183.                         \|/        ||
  184.                         1200472 <--'|
  185.                         1200474 <---'
  186.                               ^
  187. ----------------------------------------------------------------------------
  188.  
  189. x5xxxxx's   (Header keywords: ISDATE, STRUCT)
  190.  
  191.     - Returns Dates in Expanded "Wed 19-Mar-1997  6:58p" Format.
  192.     - All Date Values take up 6 bytes of space.
  193.     - By changing the "5" into a "1", and Incrementing each Additional Value
  194.       by 1, you can extract the following 6 pieces of information from the
  195.       Date stored at this location:
  196.  
  197.             1500410 --> Returns: "Fri  6-Aug-1965 12:00a"   (My Birthdate)
  198.  
  199.             1100410 --> Returns: "65" (Last two digits of YEAR)
  200.             1100411 --> Returns: "8"  (Number of the MONTH)
  201.             1100412 --> Returns: "6"  (Number of the DAY)
  202.             1100413 --> Returns: "0"  (Number of the HOUR)
  203.             1100414 --> Returns: "0"  (Number of the MINUTE)
  204.             1100415 --> Returns: "42" (Number of the SECONDS)
  205.  
  206. ----------------------------------------------------------------------------
  207.  
  208. x6xxxxx's   (Header keywords: STRUCT, POINTER, BPTR)
  209.  
  210.     - Pointers take up 4 bytes of space.
  211.     - Pointers point to the START of a structure's data, as found in the
  212.       CNet Memory Map. These pointers are a bit tough to work with, which
  213.       is why you should be fairly FLUENT in ARexx, before attempting to
  214.       manipulating any of these values.
  215.  
  216. ----------------------------------------------------------------------------
  217.  
  218.     In conclusion, I'd like to share a bit of the future with you all. Ray
  219. and I have been talking about these long offset values for a LONG time, and
  220. Ray's been trying to figure out a way to make USING them a LOT easier, both
  221. for US as well as for HIM. The constant restrictions we put him under having
  222. to do with these getuser values is holding Ray back from seriously being 
  223. able to expand upon the firm base in CNet that he's already founded.
  224.  
  225.     In a future version of CNet, Ray will be implementing a Tag Server system 
  226. of using these values. Here's an example of how this might work:
  227.  
  228.      Current GetUser                                    Possible TagName
  229.     =================                                  ==================
  230.         1500000       Current Date & Time                   15_Today
  231.         1200012       Account Number of User Online         12_id
  232.         1600040       Access Group Name of Current User     16_AName
  233.         1400064       Which Caller Number Am I?             14_Caller
  234.         1300374       Organization Line of User Online      13_Organ
  235.         1100446       Access Group of User Online           11_Access
  236.  
  237.     The above will give you an idea of how the tags MIGHT look in this FUTURE
  238. version of CNet Amiga. You'll note that the tags START with the SAME two
  239. digits as the current GetUser values. These digits can tell CNet WHICH of
  240. the structures to look into, as well as what TYPE of data the variable should
  241. be read in as. 
  242.  
  243.     How the tags will be USED is yet to be seen. I believe I recall Ray saying
  244. something like using "GD" (possibly for GetData), so you'd use:
  245.  
  246.                 gd 15_Today     instead of      gu 1500000
  247.  
  248.     This method of obtaining variable values will be VERY nice for THREE big
  249. reasons that I can see already:
  250.  
  251. 1. Using the descriptive word in the tag will make it easier to figure out
  252.    what it was you were trying to read in.
  253.  
  254. 2. Programmers of "C" will have an easier time in the CONVERSION of existing
  255.    ARexx files INTO the "C" language, as they'll be able to gleen the info
  256.    they'll need in THEIR variable initializations.
  257.  
  258. 3. Because the Tag Server will be responsible for locating the data once it
  259.    receives a tagname, Ray will then have the freedom to further expand upon
  260.    the data structures, WITHOUT having to worry about creating another of the
  261.    dreaded "getuser shifts" which has caused numerous problems in the past!
  262.  
  263.     Ray's only major qualm with this idea being that once implemented, it
  264. will mean that ALL existing ARexx program files will be rendered useless. I
  265. have already told Ray, and I am telling you ALL now, that I have offered to
  266. create a utility which will have the ability of reading in an existing ARexx
  267. file and CONVERTING usages of GETUSER, GETSCRATCH, PUTUSER, and PUTSCRATCH
  268. into the corresponding tagnames.
  269.  
  270.     We'll be bound to be hearing more about this new system as Ray's date of
  271. implementation grows nearer. WHEN this date will come is for RAY to know at
  272. this time. Please don't badger him about the issue. It's the TURNING point
  273. we'll need to fully unleash Ray onto the code! ;-)
  274.  
  275. ----------------------------------------------------------------------------
  276.  
  277.     That's all there is to this introductions. If you have ANY questions 
  278. regarding ANYTHING in this Introduction, or with ANY of the information in 
  279. ANY of the files included with this package, PLEASE do not hesitate to 
  280. contact me for further guidance!
  281.  
  282.     And that, my friends, is the END of this introduction!
  283.                                                                   - Dotoran
  284. ============================================================================
  285.  Dotoran(David Weeks) - Frontiers BBS    - (716)/823-9892 (USA)
  286.                       - FidoNet Network  - 1:260/121.0
  287.                       - CLink Network    - 911:6840/2.0
  288.                       - Internet's WWW   - http://www.bluemoon.net/~dotoran
  289.                       - Internet's EMAIL - dotoran@bluemoon.net
  290. ============================================================================
  291.